import { ActionStatus } from '../constant/constant';
import { ActionResult } from '../typesd';
import BaseNode from './BaseNode';

export default class StartNode extends BaseNode {
  static nodeTypeName = 'StartNode';
  readonly baseType = 'start';

  /**
   * 节点的执行逻辑
   * @overridable 可以自定义节点重写此方法。
   * @param params.executionId 流程执行记录ID
   * @param params.actionId 此节点执行记录ID
   * @param params.nodeId 节点ID
   * @returns 返回下一步的执行参数
   * 当不返回时，表示此节点执行成功，流程会继续执行下一步。
   * 当返回时，返回格式
   */
  public async action(params: {
    executionId: string;
    actionId: string;
    nodeId: string;
  }): Promise<ActionResult> {
    return { status: ActionStatus.SUCCESS, detail: this.globalData };
  }
}
